package br.edu.unifei.cct720.trabalho05.utils.formas;

import java.awt.Color;

import br.edu.unifei.cct720.trabalho05.utils.ponto.Ponto;
import br.edu.unifei.cct720.trabalho05.utils.ponto.Pontos;

/**
 * Classe representativa da forma geometrica de um
 * setor de circulo
 * 
 * @author fknappe
 *
 */
public class Setor extends Circulo {
	
	/**
	 * Construtor 
	 * 
	 * @param Ponto centro
	 * @param int raio
	 * @param int anguloInicial
	 * @param int anguloFinal
	 * @param Color cor
	 */
	public Setor(Ponto centro, int raio, int anguloInicial, int anguloFinal, Color cor) {
		super(centro, raio, anguloInicial, anguloFinal, cor);
	}

	/**
	 * Metodo responsavel por retornar
	 * o conjunto de pontos contidos
	 * no setor
	 * 
	 * @return Pontos
	 */
	public Pontos getPontos() {
		Pontos pontos = super.getPontos();
		
		Ponto p1 = new Ponto((int) (this.getCentro().getX() + (this.getRaio() * Math.cos(this.getAnguloInicial()))), (int) (this.getCentro().getY() - (this.getRaio() * Math.sin(this.getAnguloInicial()))), null);
		Ponto p2 = new Ponto((int) (this.getCentro().getX() + (this.getRaio() * Math.cos(this.getAnguloFinal()))), (int) (this.getCentro().getY() - (this.getRaio() * Math.sin(this.getAnguloFinal()))), null);
		
		pontos.addAll(new Reta(this.getCentro(), p1, this.getCor()).getPontos());
		pontos.addAll(new Reta(this.getCentro(), p2, this.getCor()).getPontos());
		
		return pontos;
	}
}
